package com.yakaten.service;

import java.io.FileInputStream;
import java.io.IOException;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.log4j.Logger;
import org.seasar.framework.util.ResourceUtil;

public class YahooFtpService {

	static Logger logger = Logger.getLogger(YahooFtpService.class);
	public boolean upLoadPriceFile(String filePath,String fileName) {

		boolean result = false;
		FTPClient fp = new FTPClient();
		FileInputStream is = null;

		try {

			String server = ResourceUtil.getProperties("yakaten.properties").getProperty("yahoo.ftp.server");
			fp.connect(server);
			if (!FTPReply.isPositiveCompletion(fp.getReplyCode())) { // コネクトできたか？
				logger.error("yahoo ftp connection failed:"+server);
				return result; // 異常終了
			}

			String userName = ResourceUtil.getProperties("yakaten.properties").getProperty("yahoo.ftp.username");
			String password = ResourceUtil.getProperties("yakaten.properties").getProperty("yahoo.ftp.password");
			if (fp.login(userName, password) == false) { // ログインできたか？
				logger.error("login failed:"+userName+"/"+password);
				return result; // 異常終了
			}

			// ファイル送信
			is = new FileInputStream(filePath+fileName);// クライアント側
			fp.pasv();
			fp.enterLocalPassiveMode();

			fp.setFileType(FTP.BINARY_FILE_TYPE);

			result = fp.storeFile("/"+fileName, is);// サーバー側;
		} catch (Exception e) {
			logger.error(e);
		} finally {
			try {
				is.close();
				fp.disconnect();
			} catch (IOException e) {
				logger.error(e);
			}
		}
		return result;
	}

//	public static void main(String []args){
//		new YahooFtpService().upLoadPriceFile();
//	}
}
